package edu.cque.sp03.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import edu.cque.sp01.entity.User;
import edu.cque.sp01.service.UserService;
import edu.cque.sp01.web.util.JsonUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author Hua
 * @create 2022-08-17 17:23
 */

@Slf4j
@Service
public class UserServiceImpl implements UserService {
    @Value("${sp.user-service.users}")
    private String userJson;

    @Override
    public User getUser(Integer id) {
        log.info("users json string : " + userJson);
        List<User> list = JsonUtil.from(userJson, new TypeReference<List<User>>() {
        });
        for (User u : list) {
            if (u.getId().equals(id)) {
                return u;
            }
        }
        //-----------------------
//        List<User> list1 = null;
//        try {
//            list1 = new ObjectMapper().readValue(userJson, List.class);
//        } catch (JsonProcessingException e) {
//            e.printStackTrace();
//        }
//        for (User user : list1) {
//            if (user.getId().equals(id)) {
//                return user;
//            }
//        }


        return new User(id, "name-" + id, "pwd-" + id);
    }

    @Override
    public void addScore(Integer id, Integer score) {
        // 这里增加积分
        log.info("user " + id + " - 增加积分 " + score);
    }

}
